a26a8b
@@ -259,6 +259,10 @@
public class CalendarBasedTimeout {
         if (nextMinute == null) {
             return null;
         }
+        // reset second if minute was changed  (Fix WFLY-5955)
+        if( nextMinute != currentMinute) {
+            nextSecond = this.second.getNextMatch(0);
+        }
         // compute next hour
         if (nextMinute < currentMinute) {
             currentHour++;
@@ -267,6 +271,11 @@
public class CalendarBasedTimeout {
         if (nextHour == null) {
             return null;
         }
+        if(nextHour != currentHour) {
+            // reset second/minute if hour changed  (Fix WFLY-5955)
+            nextSecond = this.second.getNextMatch(0);
+            nextMinute = this.minute.getNextMatch(0);
+        }
 
         final int nextTimeInSeconds = nextHour*3600 + nextMinute*60 + nextSecond;
         if (nextTimeInSeconds == currentTimeInSeconds) {
